//package com.xrkj.b2c.utils;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.Iterator;
//import java.util.List;
//import java.util.Set;
//
//import javax.xml.namespace.QName;
//
//import org.apache.axiom.om.impl.llom.OMElementImpl;
//import org.apache.axis2.AxisFault;
//import org.apache.axis2.addressing.EndpointReference;
//import org.apache.axis2.client.Options;
//import org.apache.axis2.rpc.client.RPCServiceClient;
//
///**
// *
// * <B>系统名称：</B><BR>
// * <B>模块名称：</B><BR>
// * <B>中文类名：</B>axis2接口客户端调用类<BR>
// * <B>概要说明：</B><BR>
// * @author 赵子靖
 //* @since 2018年07月15日
// */
//public class BaseRPCClient {
//
//	/**
//	 * url ：webservices 连接地址不包含方法及参数
//	 *
//	 * 例如: http://127.0.0.1:8080/axis2/services/Hello
//	 */
//	private String url;
//	/**
//	 * method ：调用webservices的方法名称 例如: getTime
//	 */
//	private String method;
//
//	/**
//	 * targetNamespace ：webservices的targetNamespace名词
//	 * 默认值为：http://ws.apache.org/axis2
//	 */
//	private String targetNamespace = "http://ws.apache.org/axis2";
//
//	/**
//	 * parameters ： 请求方法的参数
//	 *
//	 */
//	private Object[] parameters;
//
//	/**
//	 * returnType ： 方法返回值类型
//	 */
//	@SuppressWarnings("rawtypes")
//	private Class returnType;
//
//	/**
//	 * 执行webservices方法
//	 *
//	 * @return List<HashMap<String, String>>类型的结果集
//	 * @throws AxisFault
//	 *             Axis异常
//	 */
//	public List<HashMap<String, Object>> invokeBlocking() throws AxisFault {
//		List<HashMap<String, Object>> returns = new ArrayList<HashMap<String, Object>>();
//		RPCServiceClient serviceClient = new RPCServiceClient();
//		Options options = serviceClient.getOptions();
//		EndpointReference targetEPR = new EndpointReference(url);
//		options.setTo(targetEPR);
//		QName opAddEntry = new QName(targetNamespace, method);
//		Object[] so = serviceClient.invokeBlocking(opAddEntry, parameters,
//				new Class[] { returnType });
//		if (so.length > 0) {
//			if (so[0] instanceof Object[]) {
//				Object[] elements = (Object[]) so[0];
//				for (Object o : elements) {
//					HashMap<String, Object> maps = new HashMap<String, Object>();
//					OMElementImpl ome = (OMElementImpl) o;
//					maps.put(ome.getLocalName(), ome.getText());
//					while (ome.getNextOMSibling() != null) {
//						ome = (OMElementImpl) ome.getNextOMSibling();
//						maps.put(ome.getLocalName(), ome.getText());
//					}
//					returns.add(maps);
//				}
//			} else {
//				Object ob = so[0];
//				if (ob instanceof OMElementImpl == false) {
//					HashMap<String, Object> maps = new HashMap<String, Object>();
//					maps.put("simple", ob);
//					returns.add(maps);
//
//				} else {
//					OMElementImpl ome = (OMElementImpl) so[0];
//					HashMap<String, Object> maps = new HashMap<String, Object>();
//					maps.put(ome.getLocalName(), ome.getText());
//					returns.add(maps);
//				}
//
//			}
//			return returns;
//		} else {
//			return null;
//		}
//	}
//
//	/**
//	 * 打印返回值
//	 *
//	 * @param list
//	 *            返回值参数
//	 */
//	public void println(List<HashMap<String, Object>> list) {
//		for (HashMap<String, Object> maps : list) {
//			System.out
//					.println("-------------------------------------------------------");
//			Set<String> set = maps.keySet();
//			Iterator<String> it = set.iterator();
//			while (it.hasNext()) {
//				String key = it.next();
//				Object value = maps.get(key);
//				System.out.print(key + ":" + value + "\t");
//			}
//			System.out.println();
//		}
//	}
//
//	public Object getOneObject(List<HashMap<String, Object>> list) {
//		if (list != null && list.size() > 0) {
//			if (list.get(0) != null) {
//				HashMap<String, Object> map = list.get(0);
//				Set<String> set = map.keySet();
//				Iterator<String> it = set.iterator();
//				while (it.hasNext()) {
//					String key = it.next();
//					if (key != null && key.equalsIgnoreCase("simple")) {
//						Object value = map.get(key);
//						return value;
//					}
//				}
//			}
//			return null;
//		} else {
//			return null;
//		}
//	}
//
//	/**
//	 * 通过getter/setter设置参数
//	 */
//	public BaseRPCClient() {
//		super();
//	}
//
//	/**
//	 * 设置部分参数 targetNamespace 默认值为：http://ws.apache.org/axis2
//	 *
//	 * @param url
//	 * @param method
//	 * @param parameters
//	 * @param returnType
//	 */
//	public BaseRPCClient(String url, String method, Object[] parameters,
//			@SuppressWarnings("rawtypes") Class returnType) {
//		super();
//		this.url = url;
//		this.method = method;
//		this.parameters = parameters;
//		this.returnType = returnType;
//	}
//
//	public BaseRPCClient(String url, String method, String targetNamespace,
//			Object[] parameters, @SuppressWarnings("rawtypes") Class returnType) {
//		super();
//		this.url = url;
//		this.method = method;
//		this.targetNamespace = targetNamespace;
//		this.parameters = parameters;
//		this.returnType = returnType;
//	}
//
//	public String getUrl() {
//		return url;
//	}
//
//	public void setUrl(String url) {
//		this.url = url;
//	}
//
//	public String getMethod() {
//		return method;
//	}
//
//	public void setMethod(String method) {
//		this.method = method;
//	}
//
//	public String getTargetNamespace() {
//		return targetNamespace;
//	}
//
//	/**
//	 * targetNamespace 默认值为：http://ws.apache.org/axis2
//	 *
//	 * @param targetNamespace
//	 */
//	public void setTargetNamespace(String targetNamespace) {
//		this.targetNamespace = targetNamespace;
//	}
//
//	public Object[] getParameters() {
//		return parameters;
//	}
//
//	public void setParameters(Object[] parameters) {
//		this.parameters = parameters;
//	}
//
//	@SuppressWarnings("rawtypes")
//	public Class getReturnType() {
//		return returnType;
//	}
//
//	/**
//	 * 返回值类型若为List可设置为Object[]类型
//	 *
//	 * @param returnType
//	 */
//	public void setReturnType(@SuppressWarnings("rawtypes") Class returnType) {
//		this.returnType = returnType;
//	}
//
//}
